    
namespace MinCultura.Sipa.AgentesArtes
{
	using System;
	using System.Data;
	using System.Data.SqlClient;
	using System.Collections;
	using Common;	
	using SystemFrameworks;
	using Microsoft.ApplicationBlocks.Data;

	/// <summary>
	/// Clase de acceso a datos para la entidad ART_TIPOS_FORMACION_ARTISTICA
	/// </summary>

	public class TiposFormacionArtistica
	{
        #region propiedades

        private string _cadenaConexion;

        public string ConnectionString
        {
            get { return _cadenaConexion; }
            set { _cadenaConexion = value; }
        }

        #endregion

	   #region Private Data Access Atributes
    private const String TFA_ID_PARAM = "@TFA_ID";
    private const String TFA_TIPO_PARAM = "@TFA_TIPO";
	#endregion Private Data Access Atributes
  
	/// <summary>
	/// Constructor de la clase ARTTIPOSFORMACIONARTISTICA
	/// </summary>
        public TiposFormacionArtistica(string strCadenaConecxion)
        {
            ConnectionString = strCadenaConecxion;
        }

	public MinCultura.Sipa.DataAccess.AgentesArtes.TiposFormacionArtisticaData BuscarTiposFormacionArtistica()
	{
	MinCultura.Sipa.DataAccess.AgentesArtes.TiposFormacionArtisticaData response = new MinCultura.Sipa.DataAccess.AgentesArtes.TiposFormacionArtisticaData();
	SqlHelper.ExecuteDataTable(this.ConnectionString, CommandType.StoredProcedure, "PAS_BUSCAR_ART_TIPOS_FORMACION_ARTISTICA", response.Tables[0]);
		if (response.Tables[0].Rows.Count == 0)
			return null;
		return response;
	}

        public DataTable BuscarTipoFormacionArtisticaImparte()
        {
            DataTable response = new DataTable();
            SqlHelper.ExecuteDataTable(this.ConnectionString, CommandType.StoredProcedure, "PAS_BUSCAR_ART_TIPO_FORMACION_ARTISTICA_IMPARTE", response);
            if (response.Rows.Count == 0)
                return null;
            return response;
        }
	
	public MinCultura.Sipa.DataAccess.AgentesArtes.TiposFormacionArtisticaData ConsultarTiposFormacionArtistica	(decimal parTFA_ID)
	{
	MinCultura.Sipa.DataAccess.AgentesArtes.TiposFormacionArtisticaData response = new MinCultura.Sipa.DataAccess.AgentesArtes.TiposFormacionArtisticaData();
	
		SqlParameter param1 = new SqlParameter(TFA_ID_PARAM, parTFA_ID);
		
		SqlParameter[] parameters = {param1};		
		SqlHelper.ExecuteDataTable(this.ConnectionString, CommandType.StoredProcedure, "PAS_CONSULTAR_ART_TIPOS_FORMACION_ARTISTICA", response.Tables[0], parameters);
		if (response.Tables[0].Rows.Count == 0)
			return null;
		return response;
	}
			
	public decimal  AdicionarTiposFormacionArtistica (MinCultura.Sipa.DataAccess.AgentesArtes.TiposFormacionArtisticaData datos)		 									
		
	{
		DataTable tabla = datos.Tables[MinCultura.Sipa.DataAccess.AgentesArtes.TiposFormacionArtisticaData.ART_TIPOS_FORMACION_ARTISTICA_TABLE];
		decimal decTFA_ID=0;
				
		try
		{			
			foreach (DataRow row in tabla.Rows)
			{
				
				SqlParameter param1 = new SqlParameter(TFA_ID_PARAM, SqlDbType.Decimal);
				param1.Direction=ParameterDirection.Output;
				SqlParameter param2 = new SqlParameter(TFA_TIPO_PARAM, row[MinCultura.Sipa.DataAccess.AgentesArtes.TiposFormacionArtisticaData.TFA_TIPO_FIELD]);					
				SqlParameter[] parameters = {param1,param2};
				SqlHelper.ExecuteNonQuery(this.ConnectionString, CommandType.StoredProcedure, "PAS_ADICIONAR_ART_TIPOS_FORMACION_ARTISTICA", parameters); 				
				decTFA_ID=decimal.Parse(param1.Value.ToString());
				
				} 
				
				return(decTFA_ID);
			 
		} 		
		catch (SqlException sqlEx)
		{		
				throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx,"ART_TIPOS_FORMACION_ARTISTICA"),sqlEx); 
		}     
		catch (Exception ex) 
		{ 
				throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", "ART_TIPOS_FORMACION_ARTISTICA"),ex); 
		}	
	}		
	
	public void ActualizarTiposFormacionArtistica (MinCultura.Sipa.DataAccess.AgentesArtes.TiposFormacionArtisticaData datos)
	{
		DataTable tabla = datos.Tables[MinCultura.Sipa.DataAccess.AgentesArtes.TiposFormacionArtisticaData.ART_TIPOS_FORMACION_ARTISTICA_TABLE];
		try
		{
			foreach (DataRow row in tabla.Rows)
			{
			
			SqlParameter param1 = new SqlParameter(TFA_ID_PARAM, row[MinCultura.Sipa.DataAccess.AgentesArtes.TiposFormacionArtisticaData.TFA_ID_FIELD]);
			SqlParameter param2 = new SqlParameter(TFA_TIPO_PARAM, row[MinCultura.Sipa.DataAccess.AgentesArtes.TiposFormacionArtisticaData.TFA_TIPO_FIELD]);
				
			SqlParameter[] parameters = {param1,param2};
			SqlHelper.ExecuteNonQuery(this.ConnectionString, CommandType.StoredProcedure, "PAS_ACTUALIZAR_ART_TIPOS_FORMACION_ARTISTICA", parameters); 
			} 
		} 
		catch (SqlException sqlEx)
		{		
			throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx,"ART_TIPOS_FORMACION_ARTISTICA"),sqlEx); 
		}     
		catch (Exception ex) 
		{ 
			throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorActualizar", "ART_TIPOS_FORMACION_ARTISTICA"),ex); 
		}
	} 
	
		/// <summary>
		/// Elimina un registro de la entidad Arttiposformacionartistica
		/// </summary>
		/// <param name="parTFA_ID">Identificador del registro
		public void EliminarTiposFormacionArtistica (decimal parTFA_ID)
		{
			try
			{
				SqlParameter param1 = new SqlParameter(TFA_ID_PARAM, parTFA_ID);
					
				SqlParameter[] parameters = {param1};
				SqlHelper.ExecuteNonQuery(this.ConnectionString, CommandType.StoredProcedure, "PAS_ELIMINAR_ART_TIPOS_FORMACION_ARTISTICA", parameters); 
			}
			catch (SqlException sqlEx)
			{		
				throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx,"ART_TIPOS_FORMACION_ARTISTICA"),sqlEx); 
			}     
			catch (Exception ex) 
			{ 
				throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorEliminar", "ART_TIPOS_FORMACION_ARTISTICA"),ex); 
			}
		}
		
		public void EliminarTiposFormacionArtistica(ArrayList arrIDs)
    {
			SqlConnection objConnection = new  SqlConnection(ConnectionString);			   
			objConnection.Open();
			SqlTransaction objTrans=objConnection.BeginTransaction();	

			try
			{
				foreach(object Item in arrIDs)
				{		
				SqlParameter param1 = new SqlParameter(TFA_ID_PARAM, decimal.Parse(Item.ToString()));
				SqlParameter[] parameters = {param1};
				SqlHelper.ExecuteNonQuery(objTrans, CommandType.StoredProcedure, "PAS_ELIMINAR_ART_TIPOS_FORMACION_ARTISTICA", parameters); 
				}
				objTrans.Commit();
			}
			catch (SqlException sqlEx)
			{
				objTrans.Rollback();
				throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx,"ART_TIPOS_FORMACION_ARTISTICA"),sqlEx); 
			}
			catch (Exception ex)
			{
				objTrans.Rollback();
				throw new ApplicationExceptionManager (Utilidad.TraerMensaje("gmsgErrorEliminar", "ART_TIPOS_FORMACION_ARTISTICA"),ex); 
			}				  					 
			finally
			{
				objConnection.Close();
			}
    }
		/*
		public void CambiarEstado(string strIds, string strEstado)
		{
			try
			{	
				SqlParameter param1 = new SqlParameter(STR_ID_PARAM,strIds );
				SqlParameter param2 = new SqlParameter(TIP__ESTADO_PARAM,strEstado);
				SqlParameter[] parameters = {param1,param2};					
				SqlHelper.ExecuteNonQuery(this.ConnectionString, CommandType.StoredProcedure, "PAS_CAMBIAR_ESTADO_ART_TIPOS_FORMACION_ARTISTICA", parameters);
			}
			catch (SqlException sqlEx)
			{						 
				throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx,"ART_TIPOS_FORMACION_ARTISTICA"),sqlEx); 
			}
			catch (Exception ex)
			{				 
				if (strEstado.Equals(ApplicationConfiguration.EstadoActivo))
				{
					throw new ApplicationExceptionManager (Utilidad.TraerMensaje("gmsgAprobarRegistrosExitoso", "ART_TIPOS_FORMACION_ARTISTICA")); 
				}
				else
				{
					throw new ApplicationExceptionManager (Utilidad.TraerMensaje("gmsgDesaprobarRegistrosExitoso", "ART_TIPOS_FORMACION_ARTISTICA")); 
				}
			}			
		}
		*/
		
	}	
}		

